package cn.com.bluemoon.daps.standard.common.excel;

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.com.bluemoon.daps.common.enums.StandardDataType;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.Size;

/**
 * @author Jarod.Kong
 */
@Data
public class IndexStandardDataVo {
    // 0开始
    private int rowIndex;
    @ExcelProperty(index = 0, name = "*主题", nullable = false, size = 512)
    private String topic;
    private String topicId;

    @ExcelProperty(index = 1, name = "*一级分类", nullable = false, size = 50)
    private String category1;
    private String category1Id;

    @ExcelProperty(index = 2, name = "二级分类", size = 50)
    private String category2;
    private String category2Id;

    @ExcelProperty(index = 3, name = "三级分类", size = 50)
    private String category3;
    private String category3Id;

    @ExcelProperty(index = 4, name = "*指标名称", nullable = false, size = 512)
    private String indexName;
    @ExcelProperty(index = 5, name = "*指标展示名称", nullable = false, size = 50)
    private String indexSimpleName;
    @ExcelProperty(index = 6, name = "*业务定义", nullable = false, size = 1024)
    private String bizDefine;
    @ExcelProperty(index = 7, name = "*指标用途", nullable = false, size = 512)
    private String indexUsage;
    @ExcelProperty(index = 8, name = "*数据源系统", nullable = false, size = 255)
    private String dataSourceSystem;
    @ExcelProperty(index = 9, name = "*指标类型", nullable = false, size = 512)
    private String indexType;
    private Integer indexTypeInteger;

    @ExcelProperty(index = 10, name = "*指标数据格式", nullable = false, size = 50)
    private String indexDataType;
    //
    private StandardDataType indexDataTypeEnum;

    @ExcelProperty(index = 11, name = "度量单位", size = 512)
    private String unit;
    @ExcelProperty(index = 12, name = "取值精度", size = 512)
    private String precision;
    @ExcelProperty(index = 13, name = "*数据粒度", nullable = false, size = 512)
    private String dataParticleSize;
    @ExcelProperty(index = 14, name = "关联维度", size = 512)
    private String relateDims;
    // 维度id，多个用,
    private String relateDimNames;

    @ExcelProperty(index = 15, name = "取值范围", size = 512)
    private String valueRange;
    @ExcelProperty(index = 16, name = "*归口管理部门", nullable = false, size = 512)
    private String manageDept;
    private String manageDeptId;

    @ExcelProperty(index = 17, name = "*管理人员", nullable = false, size = 512)
    private String managePerson;
    @ExcelProperty(index = 18, name = "*需求部门", nullable = false, size = 512)
    private String demandDept;
    private String demandDeptId;

    @ExcelProperty(index = 19, name = "数据分析师", size = 50)
    private String dataAnalyst;
    @ExcelProperty(index = 20, name = "*业务人员", nullable = false, size = 50)
    private String bizPerson;
    @ExcelProperty(index = 21, name = "*指标提出时间", nullable = false, size = 50)
    private String proposeTime;
    @ExcelProperty(index = 22, name = "变更类型", size = 10)
    private String modifyType;
    @ExcelProperty(index = 23, name = "变更原因", size = 512)
    private String modifyReason;
    @ExcelProperty(index = 24, name = "数仓模型表", size = 512)
    private String dataWarehouseModelTable;
    @ExcelProperty(index = 25, name = "运算规则", size = 500)
    private String calcRule;
    @ExcelProperty(index = 26, name = "关联指标")
    private String relateIndexes;
    // 指标id 多个用,
    private String relateIndexIds;

    // 额外，如：通过元数据获取
    private String accessLogic;
    // "数仓开发人员
    private String dataWarehouseDeveloper;
    // 指标英文名称
    private String indexEngName;
}
